<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Data Stream Management System</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Data_Stream_Management_System"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Data_Stream_Management_System rootpage-Data_Stream_Management_System skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Data Stream Management System</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Ein <b>Data Stream Management System</b> (DSMS) ist ein <a href="Softwaresystem" title="Softwaresystem">Softwaresystem</a> zur Verwaltung von kontinuierlichen <a href="Datenstrom" title="Datenstrom">Datenströmen</a>. Es ist vergleichbar mit einem <a href="Datenbank" title="Datenbank">Datenbankverwaltungssystem</a> (DBMS), welches für Datenbanken eingesetzt wird. Im Gegensatz zu einem DBMS, in dem Anfragen auf statischen Daten kurzzeitig ausgeführt werden, muss ein DSMS kontinuierliche Anfragen auf Datenströmen ausführen können. Zur Formulierung von Anfragen können spezielle <a href="Anfragesprache" class="mw-redirect" title="Anfragesprache">Anfragesprachen</a> wie beispielsweise die <a href="Continuous_Query_Language" title="Continuous Query Language">Continuous Query Language</a> (CQL) eingesetzt werden.
</p><p>Data Stream Management Systeme sind in der Datenbankwelt noch relativ neu. Einige erste Entwicklungen für allgemeine Zwecke sind:
</p>
<ul><li><a href="Stanford_Stream_Data_Manager" title="Stanford Stream Data Manager">Stanford Stream Data Manager</a> (STREAM) an der <a href="Stanford_University" title="Stanford University">Stanford University</a></li>
<li>Aurora an der <a href="Brandeis_University" title="Brandeis University">Brandeis University</a>, <a href="Brown_University" title="Brown University">Brown University</a> und dem <a href="Massachusetts_Institute_of_Technology" title="Massachusetts Institute of Technology">MIT</a></li>
<li>TelegraphCQ in <a href="University_of_California%2C_Berkeley" title="University of California, Berkeley">Berkeley</a></li>
<li>PipelineDB (wie TelegraphCQ ein Ableger von <a href="PostgreSQL" title="PostgreSQL">PostgreSQL</a>)</li></ul>
<p>Daneben gibt es eine wachsende Zahl kleinerer Projekte mit verschiedenen Schwerpunkten. Im Gegensatz zu nicht-strömenden Daten, die fast ausschließlich mit universellen Datenbankverwaltungssystemen verwaltet werden, werden für strömende Daten allerdings noch in der Regel Systeme verwendet, die speziell für den Anwendungsfall entwickelt oder angepasst werden.
</p>
<div class="mw-heading mw-heading2"><h2 id="Unterschiede_zu_DBMS">Unterschiede zu DBMS</h2></div>
<p>In herkömmlichen Datenbanksystemen werden kurzzeitig laufende Anfragen auf eine während der Datenauswertung gleichbleibende Datenbasis gestellt (siehe <a href="Transaktionssystem" title="Transaktionssystem">Transaktionssystem</a>). Die Anfragen werden gestartet und bleiben solange im System, bis die Ergebnisse berechnet und ausgegeben wurden. Danach sind die Anfragen nicht mehr im System vorhanden. Man spricht auch davon, dass die Daten persistent und die Anfragen flüchtig sind. In einem Data Stream Management System werden die Anfragen einmalig installiert und bleiben im System bestehen, bis sie explizit wieder entfernt werden. Die Anfragen werden auf sich laufend ändernden Daten ausgewertet, nämlich auf Datenströmen. Die Ergebnisse der Anfragen werden ebenfalls kontinuierlich aktualisiert, ergeben also selbst auch einen Datenstrom. Man spricht auch davon, dass die Anfragen persistent und die Daten flüchtig sind. Diese beiden komplementären Prinzipien sind beispielsweise auch beim <a href="Information_Retrieval" title="Information Retrieval">Information Retrieval</a> als <i>Ad-hoc-Anfragen</i> (neue Anfragen an gleiche Dokumente) und <i>Routing-Aufgaben</i> (neue Dokumente zu vorgegebenen Anfragen) bekannt.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>Die folgende Tabelle gibt einen Vergleich verschiedener Merkmale eines Database Management Systems (DBMS) und eines Data Stream Management Systems (DSMS):
</p>
<table class="wikitable">
<tbody><tr>
<th>Database Management System (DBMS)
</th>
<th>Data Stream Management System (DSMS)
</th></tr>
<tr>
<td>Persistente Daten (Relationen)
</td>
<td>Flüchtige Datenströme
</td></tr>
<tr>
<td>Random Access
</td>
<td>Sequentieller Zugriff
</td></tr>
<tr>
<td>Einmalige Anfragen
</td>
<td>Kontinuierliche Anfragen
</td></tr>
<tr>
<td>(Theoretisch) unbeschränkter Sekundärspeicher
</td>
<td>Beschränkter Hauptspeicher
</td></tr>
<tr>
<td>Nur der aktuelle Zustand ist relevant
</td>
<td>Berücksichtigung der Eingangs-Reihenfolge
</td></tr>
<tr>
<td>relativ niedrige Update-Rate
</td>
<td>möglicherweise extrem hohe Update-Rate
</td></tr>
<tr>
<td>keine oder geringe Zeitanforderungen
</td>
<td>Echtzeitanforderungen
</td></tr>
<tr>
<td>Exakte Daten werden angenommen
</td>
<td>Veraltete / Ungenaue Daten
</td></tr>
<tr>
<td>Planbare Anfragebearbeitung
</td>
<td>Variable Datenankunft und -merkmale
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Grundlegende_Konzepte">Grundlegende Konzepte</h2></div>
<p>Ein DSMS hat, wie in der oberen Tabelle bereits ersichtlich, einige grundlegende Konzepte, die sich von einem herkömmlichen DBMS unterscheiden. Die wichtigsten Konzepte sind kontinuierliche Anfragen sowie Fenster.
</p>
<div class="mw-heading mw-heading3"><h3 id="Kontinuierliche_Anfragen">Kontinuierliche Anfragen</h3></div>
<p>Eine kontinuierliche Anfrage wird einmalig im System installiert und läuft solange, bis sie wieder entfernt wird. Die Anfrage hat einen oder mehrere Eingangsdatenströme und einen oder mehrere Ausgangsdatenströme. Das Ergebnis einer solchen Anfrage ist also kein einmaliger Satz an Daten, wie bei einer Anfrage in einem DBMS, sondern selbst ein Datenstrom. Die Ergebnisse sollten in nahezu Echtzeit erstellt werden, womit die Latenz zwischen der Ankunft neuer Daten und der Ausgabe eines neuen Ergebnisses von hoher Relevanz ist<sup id="cite_ref-Geisler2013_2-0" class="reference"><a href="#cite_note-Geisler2013-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>.
</p><p>Wichtig bei einer kontinuierlichen Anfrage ist die Definition, wann eine neue Ausgabe produziert wird. Ein zeitgetriebenes Modell (englisch <i>time-driven model</i>) erzeugt neue Ausgaben anhand des zeitlichen Fortschritts einer Uhr, zum Beispiel der Systemzeit. So könnte eine neue Ausgabe einmal pro Minute erzeugt werden. Ein anderer Ansatz sind ereignisgetriebene Modelle (englisch <i>event-driven model</i>), bei denen neue Ausgaben erzeugt werden, wenn gewisse Ereignisse im Datenstrom auftreten. So könnte z. B. jedes neue Datenelement in einem Strom eine neue Ausgabe erzeugen, da dieses Datenstromelement das Ergebnis für diesen Zeitpunkt beeinflussen kann. Dann spricht man auch von einem tupelgetriebenen Modell (englisch <i>tuple-driven model</i>)<sup id="cite_ref-Geisler2013_2-1" class="reference"><a href="#cite_note-Geisler2013-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Fenster">Fenster</h3></div>
<p>Datenströme sind potentiell unendlich, erzeugen also eine potentiell unendliche Menge an Daten. Während der Verarbeitung von kontinuierlichen Anfragen, die zumeist im Hauptspeicher passiert, steht allerdings nur eine begrenzte Menge an Speicher zur Verfügung. Fenster sind eine Möglichkeit, die Menge an Daten, die im Speicher gehalten werden muss, zu begrenzen. Eine weitere Motivation für die Verwendung von Fenstern ist der Verwendungszweck von kontinuierlichen Anfragen. Diese sollen Ergebnisse für die aktuellen Daten liefern, die mit dem Datenstrom in das DSMS fließen. Deshalb sind häufig nur die aktuellen Daten relevant, während ältere Daten nicht mehr für die aktuellen Ergebnisse benötigt werden. Um eine Begrenzung der Gültigkeit von Datenelementen ausdrücken zu können, werden Fenster verwendet.
</p><p>Fenster begrenzen die Sicht auf den Datenstrom auf die neuesten Elemente des Stroms. Verbreitet sind zeit- und elementbasierte (auch: tupelbasierte) Fenster<sup id="cite_ref-Geisler2013_2-2" class="reference"><a href="#cite_note-Geisler2013-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>. In zeitbasierten Fenstern werden die Elemente im Datenstrom eine gewisse, vorgegebene Zeit im System gehalten, zum Beispiel 30 Minuten. In einem elementbasierten Fenster enthält das Fenster maximal eine vorgegebene Menge an Elementen, zum Beispiel die neuesten 1000 Elemente. Ein Beispiel für eine Anfrage mit einem zeitbasierten Fenster ist: „Berechne den Durchschnitt des Attributs ‚x‘ von allen Datenstromelementen der letzten 30 Minuten.“
</p><p>Element- und zeitbasierte Fenster können unterschiedlich definiert werden. Hier wird hauptsächlich zwischen gleitenden (englisch <i>sliding</i>) und taumelnden bzw. springenden (englisch <i>tumbling</i>) Fenstern unterschieden. Der Unterschied besteht in der Schrittgröße des Fensters, auch Periodizität genannt. Ein gleitendes Fenster schreitet mit dem Fortschritt des Datenstroms so voran, dass die Schrittweite minimal ist. In einem elementbasierten Fenster würde für ein neues Element, dass in das Fenster aufgenommen wird, also genau ein Element wieder entfernt werden. Die Schrittweite kann soweit verändert werden, dass sie die Größe des Fensters hat, dies nennt man dann ein taumelndes Fenster (englisch <i>tumbling window</i>). Hier wird ein Fenster bis zur angegebenen Größe gefüllt. Beim Eintreffen des nächsten Elementes, womit die angegebene Größe des Fensters überschritten werden würde, werden alle vorherigen Elemente gleichzeitig ungültig, und das neue Fenster wird schrittweise aufgebaut, bis es wieder die maximale Größe erreicht hat. In zeitbasierten Fenstern geschieht dies analog. Ein taumelndes Fenster wäre zum Beispiel ein Fenster der Größe von 30 Minuten und einer Schrittweite von 30 Minuten<sup id="cite_ref-Geisler2013_2-3" class="reference"><a href="#cite_note-Geisler2013-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading3"><h3 id="One-pass_Paradigma">One-pass Paradigma</h3></div>
<p>Die Ressourcen im Sinne von Rechenzeit und Speicherplatz zur Berechnung von Ergebnissen auf Datenströmen sind begrenzt. Algorithmen, die Datenströme verarbeiten, speichern die Daten deshalb typischerweise nicht erst vollständig und iterieren dann über den gesamten Datensatz, um Ergebnisse zu erzeugen, sondern verarbeiten jedes einzelne Element im Datenstrom nur einmal. Dies nennt man One-Pass Paradigma: Ein Datenelement durchläuft einen Algorithmus nur einmal<sup id="cite_ref-Geisler2013_2-4" class="reference"><a href="#cite_note-Geisler2013-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>. Erreicht ein neues Element den Algorithmus, wird das Ergebnis der Berechnung angepasst und es ist kein neuer Zugriff auf das Element zu einem späteren Zeitpunkt mehr notwendig. Deshalb muss der Algorithmus keine alten Elemente speichern, sondern nur das aktuelle Zwischenergebnis.
</p><p>Dies funktioniert zum Beispiel bei einem einfachen Zähler. Die Anzahl der Objekte soll gezählt werden. Kommt ein neues Element bei dem Algorithmus an, wird der Zähler um eins erhöht, gespeichert und das Element kann gelöscht werden. Nur der aktuelle Zählerstand muss gespeichert werden.
</p>
<div class="mw-heading mw-heading2"><h2 id="Verarbeitung_von_Strömen_und_Relationen"><span id="Verarbeitung_von_Str.C3.B6men_und_Relationen"></span>Verarbeitung von Strömen und Relationen</h2></div>
<p>Während in herkömmlichen (relationalen) Datenbanksystemen die Daten in Tabellen (<a href="Relation_(Datenbank)" title="Relation (Datenbank)">Relationen</a>) verwaltet werden, kommen in einem DSMS als grundlegende Datenobjekte Datenströme hinzu. Datenströme können als kontinuierliche Folge von Zeit-Wertepaaren aufgefasst werden. Da Datenströme prinzipiell unendlich sind, müssen sie zur Verarbeitung zwischenzeitlich in Relationen umgewandelt werden. Umgekehrt können Relationen wieder in Datenströme umgewandelt werden (siehe Abbildung). Die Verarbeitung von reinen Relationen kann mit herkömmlichen Methoden stattfinden. Die Umwandlung von Strömen in andere Ströme findet über den Umweg von Relationen statt. Die auf <a href="SQL" title="SQL">SQL</a> aufbauende <a href="Continuous_Query_Language" title="Continuous Query Language">Continuous Query Language</a> bietet dazu verschiedene Operatoren an.
</p>
<div class="mw-heading mw-heading2"><h2 id="Formulierung,_Planung_und_Optimierung_von_Anfragen"><span id="Formulierung.2C_Planung_und_Optimierung_von_Anfragen"></span>Formulierung, Planung und Optimierung von Anfragen</h2></div>
<p>Ebenso wie in herkömmlichen Datenbanksystemen werden Anfragen in einer <a href="Deklarative_Programmierung" title="Deklarative Programmierung">deklarativen Sprache</a> formuliert und zur Ausführung mit Hilfe eines Anfrageplans optimiert. Da möglichst viele Anfragen gleichzeitig abgearbeitet werden sollen, werden die gespeicherten Anfragen möglichst geschickt kombiniert, so dass Teilanfragen mehrfach verwendet werden können.
</p><p>Die Komponenten eines Plans sind Operatoren, <a href="Warteschlange_(Datenstruktur)" title="Warteschlange (Datenstruktur)">Warteschlangen</a> und Zustände. Die Operatoren entsprechen den aus herkömmlichen Datenbanken bekannten Operatoren wie beispielsweise die Filterung, Sortierung, Join, mathematische Operatoren etc. sowie die Ein- und Ausgabe von Datenströmen. Die einzelnen Operatoren eines Planes sind durch Warteschlangen verbunden, in die Datenobjekte sequentiell hineingeschrieben und in der gleichen Reihenfolge vom nächsten Operator ausgelesen werden. Als Zwischenergebnisse gibt es Zustände wie beispielsweise der Inhalt eines festgelegten Fensters.
</p>
<div class="mw-heading mw-heading3"><h3 id="Beispiel">Beispiel</h3></div>
<p>Ein Nachrichtenportal möchte auf seiner Seite aktuelle Nachrichten zu den zurzeit am meisten besprochenen Themen sowie die Nachrichtenmenge eines Tages anzeigen. In einem Datenstrom kommen Nachrichten und in einem anderen Datenstrom als „<a href="Zeitgeist" title="Zeitgeist">Zeitgeist</a>“ die aktuell wichtigen Themen an. Jede Nachricht ist einem Thema zugeordnet. Konkret sollen die Nachrichtentitel der letzten Stunde zu den 10 letzten Themen sowie die Anzahl aller dazu passenden Nachrichten innerhalb der letzten 24 Stunden angezeigt werden. In CQL formuliert sind dies zwei Anfragen:
</p><p><code>Q1: SELECT Titel FROM Nachrichten N [Range 1 HOUR], Zeitgeist Z [RANGE 10] WHERE N.Thema = Z.Thema</code>
</p><p><code>Q2: SELECT COUNT(*) FROM Nachrichten N [RANGE 1 DAY], Zeitgeist Z [RANGE 10]
WHERE N.Thema = Z.Thema</code>
</p><p>Das DSMS erstellt nun aus diesen Anfragen einen möglichst effizienten Plan, der beispielsweise wie in nebenstehender Abbildung angegeben aussehen könnte. Von den Nachrichten werden zunächst die Titel und Themen projiziert und kommen in eine Warteschlange. Die Themen kommen zunächst in eine Warteschlange und von dort in ein Fenster der Länge 10. Nachrichten und Fenster werden durch einen JOIN-Operator verknüpft und gelangen in ein Fenster das alle Nachrichten eines Tages enthält. Aus diesem Fenster wird über den COUNT-Operator das Ergebnis der Anfrage Q2 ermittelt. Für die Anfrage Q1 schließt sich an das größere Fenster ein kleineres Fenster mit dem Umfang einer Stunde an.
</p>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Brian Babcock, Shivnath Babu, Mayur Data, Rajeev Motwani, Jennifer Widom. <i><a rel="nofollow" class="external text" href="http://newdbpubs.stanford.edu:8090/pub/2002-19">Models and Issues in Data Stream Systems</a></i>. In: Proceedings of 21st ACM Symposium on Principles of Database Systems (PODS 2002)</li>
<li>Don Carney, Ugur Centintemel, Mitch Cherniack et al.: <i><a rel="nofollow" class="external text" href="http://www.cs.brown.edu/research/aurora/aurora_tr.pdf">Monitoring Streams - A New Class of Data Management Applications</a> (PDF; 685 kB)</i>. (VLDB 2002)</li>
<li>Sandra Geisler: <i><a rel="nofollow" class="external text" href="http://drops.dagstuhl.de/opus/volltexte/2013/4297/pdf/ch10-geisler.pdf">Data Stream Management Systems</a></i>. Dagstuhl Follow-Ups. Vol. 5. Schloss Dagstuhl-Leibniz-Zentrum für Informatik, 2013.</li>
<li>Rajeev Motwani, Jennifer Widom, Arvind Arasu, Brian Babcock, Shivnath Babu, Mayur Datar, Gurmeet Manku, Chris Olston, Justin Rosenstein und Rohit Varma: <i><a rel="nofollow" class="external text" href="http://newdbpubs.stanford.edu:8090/pub/2002-41">Query Processing, Resource Management, and Approximation in a Data Stream Management System</a></i>. Stanford, 2002 (CIDR 2003)</li>
<li>Golab L., Ozsu M.T. <i><a rel="nofollow" class="external text" href="http://www.sigmod.org/sigmod/record/issues/0306/1.golab-ozsu1.pdf">Issues in data stream management</a></i>, ACM SIGMOD Record Volume 32, Issue 2, S. 5–14, Juni 2003.</li>
<li>Michael Cammert, Christoph Heinz, Jürgen Krämer, Bernhard Seeger: <i><a rel="nofollow" class="external text" href="http://dbs.mathematik.uni-marburg.de/Home/Publications">Anfrageverarbeitung auf Datenströmen</a></i>. Datenbank-Spektrum 11: 5–13, (2004).</li>
<li>Jürgen Krämer: <i><a rel="nofollow" class="external text" href="http://archiv.ub.uni-marburg.de/diss/z2007/0671/">Continuous Queries over Data Streams - Semantics and Implementation</a></i>. Dissertation, Philipps-Universität Marburg, (2007).</li>
<li>Jürgen Krämer, Bernhard Seeger: <i><a rel="nofollow" class="external text" href="http://portal.acm.org/citation.cfm?id=1508861">Semantics and implementation of continuous sliding window queries over data streams</a></i>. (ACM TODS 2009).</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www-db.stanford.edu/stream">STREAM</a>, <a rel="nofollow" class="external text" href="http://www-db.stanford.edu/sdt/">Stream Team Homepage</a></li>
<li><a rel="nofollow" class="external text" href="http://www.cs.brown.edu/research/aurora/">AURORA</a>, <a rel="nofollow" class="external text" href="http://www.streambase.com/">StreamBase Systems, Inc.</a></li>
<li><a rel="nofollow" class="external text" href="http://telegraph.cs.berkeley.edu/telegraphcq/">TelegraphCQ</a></li>
<li><style data-mw-deduplicate="TemplateStyles:r261891140">
/* start https://de.wikipedia.org/ */
.mw-parser-output .webarchiv-memento a{color:inherit}
/* end https://de.wikipedia.org/ */
</style><a rel="nofollow" class="external text" href="https://web.archive.org/web/20071013120025/http://datalab.cs.pdx.edu/niagara/">NigaraST</a> (<span class="webarchiv-memento"><a href="Webarchivierung#Begrifflichkeiten" title="Webarchivierung">Memento</a></span> vom 13. Oktober 2007 im <i><a href="Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</li>
<li><a rel="nofollow" class="external text" href="http://wwwdb.inf.tu-dresden.de/research-projects/closed-projects/qstream/">QStream</a></li>
<li><a rel="nofollow" class="external text" href="http://dbs.mathematik.uni-marburg.de/Home/Research/Projects/PIPES">PIPES</a>, <a rel="nofollow" class="external text" href="http://www.realtime-monitoring.com/">RTM Analyzer</a></li>
<li><a rel="nofollow" class="external text" href="https://www-db.in.tum.de/research/projects/StreamGlobe/index.shtml">StreamGlobe</a></li>
<li><a rel="nofollow" class="external text" href="http://odysseus.informatik.uni-oldenburg.de/">Odysseus</a></li>
<li><a rel="nofollow" class="external text" href="https://www.pipelinedb.com/">PipelineDB</a></li>
<li><a rel="nofollow" class="external text" href="https://www.rethinkdb.com/">RethinkDB</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="http://trec.nist.gov/data/topics_eng/"><i>Data – English Test Questions (Topics) Files List.</i></a> National Institute of Standards and Technology,<span class="Abrufdatum"> abgerufen am 14. Februar 2019</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AData+Stream+Management+System&rft.title=Data+%E2%80%93+English+Test+Questions+%28Topics%29+Files+List&rft.description=Data+%E2%80%93+English+Test+Questions+%28Topics%29+Files+List&rft.identifier=&rft.publisher=National+Institute+of+Standards+and+Technology&rft.date=&rft.language=englisch"> </span></span>
</li>
<li id="cite_note-Geisler2013-2"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-Geisler2013_2-0">a</a></sup> <sup><a href="#cite_ref-Geisler2013_2-1">b</a></sup> <sup><a href="#cite_ref-Geisler2013_2-2">c</a></sup> <sup><a href="#cite_ref-Geisler2013_2-3">d</a></sup> <sup><a href="#cite_ref-Geisler2013_2-4">e</a></sup></span> <span class="reference-text">Sandra Geisler: <cite style="font-style:italic">Data Stream Management Systems</cite>. In: Phokion G. Kolaitis and Maurizio Lenzerini and Nicole Schweikardt (Hrsg.): <cite style="font-style:italic">Dagstuhl Follow-Ups</cite>. <span style="white-space:nowrap">Band<span style="display:inline-block;width:.2em"> </span>5</span>. Schloss Dagstuhl--Leibniz-Zentrum für Informatik, Dagstuhl, Germany 2013, ISBN 978-3-939897-61-3, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>275–304</span>, <a href="Digital_Object_Identifier" title="Digital Object Identifier">doi</a>:<span class="uri-handle" style="white-space:nowrap"><a rel="nofollow" class="external text" href="https://doi.org/10.4230/DFU.Vol5.10452.275">10.4230/DFU.Vol5.10452.275</a></span> (<a rel="nofollow" class="external text" href="http://drops.dagstuhl.de/opus/volltexte/2013/4297">dagstuhl.de</a>).<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Data+Stream+Management+System&rft.atitle=Data+Stream+Management+Systems&rft.au=Sandra+Geisler&rft.btitle=Dagstuhl+Follow-Ups&rft.date=2013&rft.doi=10.4230%2FDFU.Vol5.10452.275&rft.genre=book&rft.isbn=9783939897613&rft.pages=275-304&rft.place=Dagstuhl%2C+Germany&rft.pub=Schloss+Dagstuhl--Leibniz-Zentrum+f%C3%BCr+Informatik&rft.volume=5" style="display:none"> </span></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-07-12" href="https://de.wikipedia.org/wiki/?title=Data_Stream_Management_System&oldid=257840263">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>